import request from "@/utils/request";
/**
 * 查询项目设备
 * search	string		否	搜索关键字
 * pageNo   int         是  页码，从 0 开始
 * pageSize int         是  每页数量
 * type string         否  设备类型，不传则返回所有类型设备，当前可取值为: IEQ,PMS
 * state string         否  每页数量设备状态，不传则返回所有状态设备，当前可取值为:
ONLINE, OFFLINE
 * @param data
 */
export function search(data) {
  return request({
    url: `/v2/device/search.json`,
    method: "get",
    params: data,
  });
}

/**
 * 注册设备
 * name	string		是	设备名称
 * type	string		是	设备类型，当前可选 IEQ，PMS
 * description	string		否	设备描述
 * address	string		否	设备地址
 * */
export function create(data) {
  return request({
    url: `v2/device/register.json`,
    method: "post",
    data,
  });
}

/**
 * 批量注册设备
 * name	string		是	设备名称
 * type	string		是	设备类型，当前可选 IEQ，PMS
 * description	string		否	设备描述
 * address	string		否	设备地址
 * */
export function batchCreate(data) {
  return request({
    url: `v2/device/register_all.json`,
    method: "post",
    data,
  });
}

/**
 * 部署设备
 * deviceId	string		是	设备名称
 * projectId	string		是	设备所在项目ID
 * description	string		否	设备描述
 * address	string		否	设备地址
 * direction	string		否	朝向，
                                取值：
                                EAST,
                                WEST,
                                NORTH,
                                SOUTH,
                                NORTH_EAST,
                                NORTH_WEST,
                                SOUTH_WEST,
                                SOUTH_EAST;

 * latitude	double		否	纬度
 * longitude	double		否	经度
 * imageKeys	string array		否	设备相关图片，使用文件上传接口返回的 key 属性填入，可传入多张，通过数组传入
 *
 * */
export function deploy(data) {
  return request({
    url: `v2/device/deploy.json`,
    method: "post",
    data,
  });
}

/**
 * 编辑设备
 * 请求参数同部署设备相同
 * */
export function edit(data) {
  return request({
    url: `v2/device/edit.json`,
    method: "post",
    data,
  });
}

/**
 * 获取单个设备详情
 * name/deviceId	string		是	设备名称/设备ID 二选一
 * */
export function get(data) {
  return request({
    url: `v2/device/get.json`,
    method: "get",
    params: data,
  });
}

/**
 * 获取设备数据
 * deviceId	string		是	设备ID
 * type	string		是	数据类型
 * start	long 		是	时间戳，单位 ms
 * end	long		是	时间戳，单位 ms
 * */
export function getData(data) {
  return request({
    url: `v2/device/data/get.json`,
    method: "get",
    params: data,
  });
}
/**
 * 获取未加入项目的设备列表
 * */
export function list_no_project_device() {
  return request({
    url: `v2/device/list_no_project_device.json`,
    method: "get",
  });
}
/**
 * 下载设备数据
 * */
export function download(data) {
  return request({
    url: `v2/device/data/import/download.csv`,
    method: "get",
    params: data,
  });
}
/**
 * 查询设备完整数据列表
 * */
export function getFull(data) {
  return request({
    url: `v2/device/data/get_full.json`,
    method: "get",
    params: data,
  });
}
/**
 * 查询设备在线率
 * */
export function online(data) {
  return request({
    url: `v2/device/data/online_rate.json`,
    method: "get",
    params: data,
  });
}
/**
 * 将设备分配给某用户（管理员使用接口
 * */
export function updateOwner(data) {
  return request({
    url: `v2/device/user/update_owner.json`,
    method: "post",
    data,
  });
}
/**
 * 查看设备的用户
 * @param deviceId
 * */
export function deviceUser(deviceId) {
  return request({
    url: `v2/device/user/info.json?deviceId=${deviceId}`,
    method: "get"
  });
}
/**
 * 更新单个设备的用户
 * */
export function updateUser(data) {
  return request({
    url: `v2/device/user/update.json`,
    method: "post",
    data,
  });
}
/**
 * 获取设备列表
 * */
export function listAllDevice() {
  return request({
    url: `v2/device/list_all_device.json`,
    method: "get"
  });
}
/**
 * 获取用户设备设备列表及角色
 * */
export function userDevice(data) {
  return request({
    url: `v2/admin/user/device/search.json`,
    method: "get",
    params: data
  });
}
/**
 * 删除设备
 * @param data
 */
export function deleteDevice(data) {
  return request({
    url: `v2/device/delete.json`,
    method: 'post',
    params: data
  })
}
/**
 * 查看设备校准信息
 * @param deviceId
 * */
export function deviceAdjustInfo(deviceId) {
  return request({
    url: `v2/device/adjust/get.json?deviceId=${deviceId}`,
    method: "get"
  });
}
/**
 * 校准设备
 * */
export function deviceAdjust(data) {
  return request({
    url: `v2/device/adjust/edit.json`,
    method: "post",
    data,
  });
}
